package com.lxj.cms.manage.common.interceptor;

import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;

/**
 * @version 1.0
 * @author Luo Yong <luoyong@voicesoft.cn> Created on : 2009-9-4, 12:42:05
 *         Copyright© 2009 Voicesoft Communications International Inc.All rights
 *         reserved. Description：系统安全拦截器(拦截action)
 */
public class MemberSecurityInterceptor extends AbstractInterceptor {

	private static final long serialVersionUID = -2168990303602963859L;

	@Override
	public String intercept(ActionInvocation interceptor) throws Exception {

		if(true){
			return interceptor.invoke();
		}
		// 取得请求的Action名
		String name = interceptor.getInvocationContext().getName(); // action
		// 的名称，在xml中配置的
		String namespace = interceptor.getProxy().getNamespace(); // 获取到namespace，还能够获取到要执行的方法，class等
		if ((namespace != null) && (namespace.trim().length() > 0)) {
			if ("/".equals(namespace.trim())) {
				// 说明是根路径，不需要再增加反斜杠了。
			} else {
				namespace += "/";
			}
		}
		String URL = namespace + interceptor.getProxy().getActionName();
		String method = interceptor.getProxy().getMethod();

		URL += ".action";
		// System.out.println("actionname=" + name + "||fullActionName=" + URL +
		// "||method=" + method);

		// 对普通会员登录操作放行
		if (name.equals("memberAction") && method.equals("loginPage")) {
			return interceptor.invoke();
		}
		// 对普通会员提交登录操作放行
		if (name.equals("memberAction") && method.equals("login")) {
			return interceptor.invoke();
		}
		// 对普通企业会员注册操作放行
		if (name.equals("memberAction") && method.equals("enterpriseRegister")) {
			return interceptor.invoke();
		}
		if (name.equals("memberAction") && method.equals("enterpriseRegisterPage")) {
			return interceptor.invoke();
		}
		//对会员登出放行
		if(name.equals("memberAction") && method.equals("lognOut")){
			return interceptor.invoke();
		}
		
		// 对普通会员注册操作放行
		if (name.equals("memberAction") && method.equals("personalRegister")) {
			return interceptor.invoke();
		}
		if (name.equals("memberAction") && method.equals("registerPage")) {
			return interceptor.invoke();
		}
		//对邮箱验证放行		
		if (name.equals("validateEmailAction")) {
			return interceptor.invoke();
		}
		
		// 验证码放行
		if (name.equals("randomAction")) {
			return interceptor.invoke();
		}
		
		//对取回密码放行
		if (name.equals("memberAction") && method.equals("findPwd")) {
			return interceptor.invoke();
		}
		if (name.equals("memberAction") && method.equals("findPasswordPage")) {
			return interceptor.invoke();
		}
		
		
		/*
		 * if (name.equals("initAction")) { return interceptor.invoke(); }
		 */
		// 对登录操作放行END
       /*
		Map sessionMap = interceptor.getInvocationContext().getSession();
		if (null == sessionMap.get(PublicConfing.MEMBER_MEMBWE_OBJ_STRING_CONFIG)) {
			HttpServletRequest request = ServletActionContext.getRequest();
			StringBuffer url = request.getRequestURL();
			if (request.getQueryString() != null) {
				url.append("?");
				url.append(request.getQueryString());
			}
			interceptor.getInvocationContext().getSession().put(PublicConfing.MEMBER_REDIRECTURL_TEMP, url.toString());
			return Action.LOGIN;
		} else {
			return interceptor.invoke();
		}
		*/
		return interceptor.invoke();
	}
}
